Skip to content

Drawing: Replace harvested assets with live config #51934

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Apr 29, 2021

Conversation

ViktorHofer
Copy link
Member

@ViktorHofer ViktorHofer commented Apr 27, 2021

Removing the netcoreapp2.0, netstandard2.0 and net461 configurations
of System.Drawing.Common as these aren't built live anymore (harvested).
Replace the netstandard2.0 and net461 harvested asset with live builds
and stop supporting netcoreapp2.x.

Bringing these assets back as the minimum supported set of platforms are
ones that support netstandard2.0 and are still in support.

Contributes to #47530

NuSpec diff

diff --git a/System.Drawing.Common.nuspec b/System.Drawing.Common.nuspec
index 8dac942..1596910 100644
--- a/System.Drawing.Common.nuspec
+++ b/System.Drawing.Common.nuspec
@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
   <metadata minClientVersion="2.12">
     <id>System.Drawing.Common</id>
-    <version>6.0.0-preview.3.21201.4</version>
+    <version>6.0.0-dev</version>
     <title>System.Drawing.Common</title>
     <authors>Microsoft</authors>
     <owners>microsoft,dotnetframework</owners>
@@ -23,17 +23,13 @@ System.Drawing.Icon</description>
     <releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
     <copyright>© Microsoft Corporation. All rights reserved.</copyright>
     <serviceable>true</serviceable>
-    <repository type="git" url="https://github.com/dotnet/runtime" commit="236cb21e3c1992c8cee6935ce67e2125ac4687e8" />
+    <repository type="git" url="https://github.com/dotnet/runtime" commit="0000000000000000000000000000000000000000" />
     <dependencies>
       <group targetFramework="MonoAndroid1.0" />
       <group targetFramework="MonoTouch1.0" />
       <group targetFramework=".NETFramework4.6.1" />
-      <group targetFramework=".NETCoreApp2.0">
-        <dependency id="Microsoft.NETCore.Platforms" version="6.0.0-preview.3.21201.4" />
-        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-preview.3.21201.4" exclude="Compile" />
-      </group>
       <group targetFramework=".NETCoreApp3.0">
-        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-preview.3.21201.4" exclude="Compile" />
+        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-dev" exclude="Compile" />
       </group>
       <group targetFramework=".NETStandard2.0" />
       <group targetFramework="Xamarin.iOS1.0" />

ref/net461 diff

 {
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

ref/netstandard2.0 diff

``` diff
 {
+    namespace System {
+        internal sealed class ObsoleteAttribute : Attribute
+    }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
     namespace System.Drawing {
         public sealed class BufferedGraphics : IDisposable {
-            ~BufferedGraphics();

-            public void Render(Graphics target);
+            public void Render(Graphics? target);
         }
         public struct CharacterRange {
-            private int _dummy;

+            private int _dummyPrimitive;
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Font : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public string OriginalFontName { get; }
+            public string? OriginalFontName { get; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class FontConverter : TypeConverter
         public sealed class FontFamily : MarshalByRefObject, IDisposable {
-            public FontFamily(string name, FontCollection fontCollection);
+            public FontFamily(string name, FontCollection? fontCollection);
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable {
+            public Matrix3x2 TransformElements { get; set; }
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawString(string s, Font font, Brush brush, PointF point);
+            public void DrawString(string? s, Font font, Brush brush, PointF point);
-            public void DrawString(string s, Font font, Brush brush, PointF point, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, PointF point, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, float x, float y);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y);
-            public void DrawString(string s, Font font, Brush brush, float x, float y, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y, StringFormat? format);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
+            public void GetContextInfo(out PointF offset);
+            public void GetContextInfo(out PointF offset, out Region? clip);
-            public Region[] MeasureCharacterRanges(string text, Font font, RectangleF layoutRect, StringFormat stringFormat);
+            public Region[] MeasureCharacterRanges(string? text, Font font, RectangleF layoutRect, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font);
+            public SizeF MeasureString(string? text, Font font);
-            public SizeF MeasureString(string text, Font font, PointF origin, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, PointF origin, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat, out int charactersFitted, out int linesFilled);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
-            public SizeF MeasureString(string text, Font font, int width);
+            public SizeF MeasureString(string? text, Font font, int width);
-            public SizeF MeasureString(string text, Font font, int width, StringFormat format);
+            public SizeF MeasureString(string? text, Font font, int width, StringFormat? format);
         }
         public sealed class Icon : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public static Icon ExtractAssociatedIcon(string filePath);
+            public static Icon? ExtractAssociatedIcon(string filePath);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class IconConverter : ExpandableObjectConverter
         public abstract class Image : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public object Tag { get; set; }
+            public object? Tag { get; set; }
-            public EncoderParameters GetEncoderParameterList(Guid encoder);
+            public EncoderParameters? GetEncoderParameterList(Guid encoder);
-            public PropertyItem GetPropertyItem(int propid);
+            public PropertyItem? GetPropertyItem(int propid);
-            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort callback, IntPtr callbackData);
+            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort? callback, IntPtr callbackData);
-            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void SaveAdd(Image image, EncoderParameters encoderParams);
+            public void SaveAdd(Image image, EncoderParameters? encoderParams);
-            public void SaveAdd(EncoderParameters encoderParams);
+            public void SaveAdd(EncoderParameters? encoderParams);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
         public sealed class ImageAnimator {
-            public static bool CanAnimate(Image image);
+            public static bool CanAnimate(Image? image);
         }
+        public class ImageConverter : TypeConverter
+        public class ImageFormatConverter : TypeConverter
         public sealed class Region : MarshalByRefObject, IDisposable {
-            public RegionData GetRegionData();
+            public RegionData? GetRegionData();
-            public bool IsVisible(Point point, Graphics g);
+            public bool IsVisible(Point point, Graphics? g);
-            public bool IsVisible(PointF point, Graphics g);
+            public bool IsVisible(PointF point, Graphics? g);
-            public bool IsVisible(Rectangle rect, Graphics g);
+            public bool IsVisible(Rectangle rect, Graphics? g);
-            public bool IsVisible(RectangleF rect, Graphics g);
+            public bool IsVisible(RectangleF rect, Graphics? g);
-            public bool IsVisible(int x, int y, Graphics g);
+            public bool IsVisible(int x, int y, Graphics? g);
-            public bool IsVisible(int x, int y, int width, int height, Graphics g);
+            public bool IsVisible(int x, int y, int width, int height, Graphics? g);
-            public bool IsVisible(float x, float y, Graphics g);
+            public bool IsVisible(float x, float y, Graphics? g);
-            public bool IsVisible(float x, float y, float width, float height, Graphics g);
+            public bool IsVisible(float x, float y, float width, float height, Graphics? g);
         }
         public static class SystemFonts {
-            public static Font GetFontByName(string systemFontName);
+            public static Font? GetFontByName(string systemFontName);
         }
         public sealed class TextureBrush : Brush {
-            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes? imageAttr);
-            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes? imageAttr);
         }
         public class ToolboxBitmapAttribute : Attribute {
-            public override bool Equals(object value);
+            public override bool Equals(object? value);
-            public Image GetImage(object component);
+            public Image? GetImage(object? component);
-            public Image GetImage(object component, bool large);
+            public Image? GetImage(object? component, bool large);
-            public Image GetImage(Type type);
+            public Image? GetImage(Type type);
-            public Image GetImage(Type type, bool large);
+            public Image? GetImage(Type type, bool large);
-            public Image GetImage(Type type, string imgName, bool large);
+            public Image? GetImage(Type type, string? imgName, bool large);
-            public static Image GetImageFromResource(Type t, string imageName, bool large);
+            public static Image? GetImageFromResource(Type t, string? imageName, bool large);
         }
     }
     namespace System.Drawing.Drawing2D {
         public class CustomLineCap : MarshalByRefObject, ICloneable, IDisposable {
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap, float baseInset);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap, float baseInset);
         }
         public sealed class GraphicsPath : MarshalByRefObject, ICloneable, IDisposable {
-            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat? format);
-            public void Flatten(Matrix matrix);
+            public void Flatten(Matrix? matrix);
-            public void Flatten(Matrix matrix, float flatness);
+            public void Flatten(Matrix? matrix, float flatness);
-            public RectangleF GetBounds(Matrix matrix);
+            public RectangleF GetBounds(Matrix? matrix);
-            public RectangleF GetBounds(Matrix matrix, Pen pen);
+            public RectangleF GetBounds(Matrix? matrix, Pen? pen);
-            public bool IsOutlineVisible(Point pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(Point pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics? graphics);
-            public bool IsVisible(Point pt, Graphics graphics);
+            public bool IsVisible(Point pt, Graphics? graphics);
-            public bool IsVisible(PointF pt, Graphics graphics);
+            public bool IsVisible(PointF pt, Graphics? graphics);
-            public bool IsVisible(int x, int y, Graphics graphics);
+            public bool IsVisible(int x, int y, Graphics? graphics);
-            public bool IsVisible(float x, float y, Graphics graphics);
+            public bool IsVisible(float x, float y, Graphics? graphics);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode, float flatness);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode, float flatness);
-            public void Widen(Pen pen, Matrix matrix);
+            public void Widen(Pen pen, Matrix? matrix);
-            public void Widen(Pen pen, Matrix matrix, float flatness);
+            public void Widen(Pen pen, Matrix? matrix, float flatness);
         }
         public sealed class GraphicsPathIterator : MarshalByRefObject, IDisposable {
-            public GraphicsPathIterator(GraphicsPath path);
+            public GraphicsPathIterator(GraphicsPath? path);
         }
         public sealed class LinearGradientBrush : Brush {
-            public Blend Blend { get; set; }
+            public Blend? Blend { get; set; }
         }
         public sealed class Matrix : MarshalByRefObject, IDisposable {
+            public Matrix(Matrix3x2 matrix);
+            public Matrix3x2 MatrixElements { get; set; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
     }
     namespace System.Drawing.Imaging {
         public sealed class Encoder {
+            public static readonly Encoder ColorSpace;
+            public static readonly Encoder ImageItems;
+            public static readonly Encoder SaveAsCmyk;
         }
         public enum EncoderParameterValueType {
+            ValueTypePointer = 9,
         }
         public sealed class FrameDimension {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class ImageAttributes : ICloneable, IDisposable {
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag flags);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag flags);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
         }
         public sealed class ImageCodecInfo {
-            public byte[][] SignatureMasks { get; set; }
+            public byte[][]? SignatureMasks { get; set; }
-            public byte[][] SignaturePatterns { get; set; }
+            public byte[][]? SignaturePatterns { get; set; }
         }
         public sealed class ImageFormat {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class Metafile : Image {
-            public Metafile(IntPtr referenceHdc, EmfType emfType, string description);
+            public Metafile(IntPtr referenceHdc, EmfType emfType, string? description);
-            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string desc);
+            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? desc);
-            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string desc);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string? desc);
         }
     }
     namespace System.Drawing.Printing {
+        public class MarginsConverter : ExpandableObjectConverter
         public abstract class PrintController {
-            public virtual Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e);
+            public virtual Graphics? OnStartPage(PrintDocument document, PrintPageEventArgs e);
         }
         public class PrintDocument : Component {
-            protected virtual void OnBeginPrint(PrintEventArgs e);
+            protected internal virtual void OnBeginPrint(PrintEventArgs e);
-            protected virtual void OnEndPrint(PrintEventArgs e);
+            protected internal virtual void OnEndPrint(PrintEventArgs e);
-            protected virtual void OnPrintPage(PrintPageEventArgs e);
+            protected internal virtual void OnPrintPage(PrintPageEventArgs e);
-            protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
+            protected internal virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
         }
         public class PrinterSettings : ICloneable {
             public class PaperSizeCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PaperSourceCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PrinterResolutionCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class StringCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
         }
         public class PrintPageEventArgs : EventArgs {
-            public PrintPageEventArgs(Graphics graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
+            public PrintPageEventArgs(Graphics? graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
-            public Graphics Graphics { get; }
+            public Graphics? Graphics { get; }
         }
     }
-    namespace System.Runtime.CompilerServices {
 {
-        internal class __BlockReflectionAttribute : Attribute

-    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

src/net461 diff

 {
     namespace System {
         internal static class SR {
+            private static readonly bool s_usingResourceKeys;
+            internal static string AvailableOnlyOnWMF { get; }
+            internal static string CannotCreateGraphics { get; }
+            internal static string CouldNotOpenDisplay { get; }
+            internal static string CouldntFindSpecifiedFile { get; }
+            internal static string IconInstanceWasDisposed { get; }
+            internal static string IconInvalidMaskLength { get; }
-            internal static string InvalidArgument { get; }

+            internal static string InvalidArgumentValue { get; }
+            internal static string InvalidArgumentValueFontConverter { get; }
+            internal static string InvalidGraphicsUnit { get; }
+            internal static string InvalidThumbnailSize { get; }
+            internal static string NoCodecAvailableForFormat { get; }
+            internal static string none { get; }
+            internal static string NotImplementedUnderX11 { get; }
+            internal static string NoValidIconImageFound { get; }
+            internal static string NullOrEmptyPath { get; }
+            internal static string NumberOfPointsAndTypesMustBeSame { get; }
+            internal static string ObjectDisposed { get; }
-            private static ResourceManager ResourceManager { get; }
+            internal static ResourceManager ResourceManager { get; }
-            internal static Type ResourceType { get; }

+            internal static string SystemDrawingCommon_PlatformNotSupported { get; }
+            internal static string TargetDirectoryDoesNotExist { get; }
+            internal static string ValueLessThenZero { get; }
+            internal static string ValueNotOneOfValues { get; }
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2, object p3);
+            internal static string Format(IFormatProvider provider, string resourceFormat, params object[] args);
+            internal static string GetResourceString(string resourceKey);
         }
     }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

src/netstandard2.0 diff

 {
     namespace System {
+        internal sealed class ObsoleteAttribute : Attribute
         internal static class SR {
+            private static readonly bool s_usingResourceKeys;
+            internal static string AvailableOnlyOnWMF { get; }
+            internal static string CannotCreateGraphics { get; }
+            internal static string CouldNotOpenDisplay { get; }
+            internal static string CouldntFindSpecifiedFile { get; }
+            internal static string IconInstanceWasDisposed { get; }
+            internal static string IconInvalidMaskLength { get; }
-            internal static string InvalidArgument { get; }

+            internal static string InvalidArgumentValue { get; }
+            internal static string InvalidArgumentValueFontConverter { get; }
+            internal static string InvalidGraphicsUnit { get; }
+            internal static string InvalidThumbnailSize { get; }
+            internal static string NoCodecAvailableForFormat { get; }
+            internal static string none { get; }
+            internal static string NotImplementedUnderX11 { get; }
+            internal static string NoValidIconImageFound { get; }
+            internal static string NullOrEmptyPath { get; }
+            internal static string NumberOfPointsAndTypesMustBeSame { get; }
+            internal static string ObjectDisposed { get; }
-            private static ResourceManager ResourceManager { get; }
+            internal static ResourceManager ResourceManager { get; }
-            internal static Type ResourceType { get; }

+            internal static string SystemDrawingCommon_PlatformNotSupported { get; }
+            internal static string TargetDirectoryDoesNotExist { get; }
+            internal static string ValueLessThenZero { get; }
+            internal static string ValueNotOneOfValues { get; }
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2, object p3);
+            internal static string Format(IFormatProvider provider, string resourceFormat, params object[] args);
+            internal static string GetResourceString(string resourceKey);
         }
     }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
     namespace System.Drawing {
         public abstract class Brush : MarshalByRefObject, ICloneable, IDisposable {
+            ~Brush();
         }
         public sealed class BufferedGraphics : IDisposable {
-            public void Render(Graphics target);
+            public void Render(Graphics? target);
         }
         public sealed class BufferedGraphicsContext : IDisposable {
+            ~BufferedGraphicsContext();
         }
         public struct CharacterRange {
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Font : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public string OriginalFontName { get; }
+            public string? OriginalFontName { get; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~Font();
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class FontConverter : TypeConverter
         public sealed class FontFamily : MarshalByRefObject, IDisposable {
-            public FontFamily(string name, FontCollection fontCollection);
+            public FontFamily(string name, FontCollection? fontCollection);
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~FontFamily();
         }
         public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable {
+            public Matrix3x2 TransformElements { get; set; }
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawString(string s, Font font, Brush brush, PointF point);
+            public void DrawString(string? s, Font font, Brush brush, PointF point);
-            public void DrawString(string s, Font font, Brush brush, PointF point, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, PointF point, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, float x, float y);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y);
-            public void DrawString(string s, Font font, Brush brush, float x, float y, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y, StringFormat? format);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
+            ~Graphics();
+            public void GetContextInfo(out PointF offset);
+            public void GetContextInfo(out PointF offset, out Region? clip);
-            public Region[] MeasureCharacterRanges(string text, Font font, RectangleF layoutRect, StringFormat stringFormat);
+            public Region[] MeasureCharacterRanges(string? text, Font font, RectangleF layoutRect, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font);
+            public SizeF MeasureString(string? text, Font font);
-            public SizeF MeasureString(string text, Font font, PointF origin, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, PointF origin, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat, out int charactersFitted, out int linesFilled);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
-            public SizeF MeasureString(string text, Font font, int width);
+            public SizeF MeasureString(string? text, Font font, int width);
-            public SizeF MeasureString(string text, Font font, int width, StringFormat format);
+            public SizeF MeasureString(string? text, Font font, int width, StringFormat? format);
         }
         public sealed class Icon : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public static Icon ExtractAssociatedIcon(string filePath);
+            public static Icon? ExtractAssociatedIcon(string filePath);
+            ~Icon();
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class IconConverter : ExpandableObjectConverter
         public abstract class Image : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public object Tag { get; set; }
+            public object? Tag { get; set; }
+            ~Image();
-            public EncoderParameters GetEncoderParameterList(Guid encoder);
+            public EncoderParameters? GetEncoderParameterList(Guid encoder);
-            public PropertyItem GetPropertyItem(int propid);
+            public PropertyItem? GetPropertyItem(int propid);
-            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort callback, IntPtr callbackData);
+            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort? callback, IntPtr callbackData);
-            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void SaveAdd(Image image, EncoderParameters encoderParams);
+            public void SaveAdd(Image image, EncoderParameters? encoderParams);
-            public void SaveAdd(EncoderParameters encoderParams);
+            public void SaveAdd(EncoderParameters? encoderParams);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
         public sealed class ImageAnimator {
-            public static bool CanAnimate(Image image);
+            public static bool CanAnimate(Image? image);
         }
+        public class ImageConverter : TypeConverter
+        public class ImageFormatConverter : TypeConverter
         public sealed class Pen : MarshalByRefObject, ICloneable, IDisposable {
+            ~Pen();
         }
         public sealed class Region : MarshalByRefObject, IDisposable {
+            ~Region();
-            public RegionData GetRegionData();
+            public RegionData? GetRegionData();
-            public bool IsVisible(Point point, Graphics g);
+            public bool IsVisible(Point point, Graphics? g);
-            public bool IsVisible(PointF point, Graphics g);
+            public bool IsVisible(PointF point, Graphics? g);
-            public bool IsVisible(Rectangle rect, Graphics g);
+            public bool IsVisible(Rectangle rect, Graphics? g);
-            public bool IsVisible(RectangleF rect, Graphics g);
+            public bool IsVisible(RectangleF rect, Graphics? g);
-            public bool IsVisible(int x, int y, Graphics g);
+            public bool IsVisible(int x, int y, Graphics? g);
-            public bool IsVisible(int x, int y, int width, int height, Graphics g);
+            public bool IsVisible(int x, int y, int width, int height, Graphics? g);
-            public bool IsVisible(float x, float y, Graphics g);
+            public bool IsVisible(float x, float y, Graphics? g);
-            public bool IsVisible(float x, float y, float width, float height, Graphics g);
+            public bool IsVisible(float x, float y, float width, float height, Graphics? g);
         }
         public sealed class StringFormat : MarshalByRefObject, ICloneable, IDisposable {
+            ~StringFormat();
         }
         public static class SystemFonts {
-            public static Font GetFontByName(string systemFontName);
+            public static Font? GetFontByName(string systemFontName);
         }
         public sealed class TextureBrush : Brush {
-            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes? imageAttr);
-            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes? imageAttr);
         }
         public class ToolboxBitmapAttribute : Attribute {
-            public override bool Equals(object value);
+            public override bool Equals(object? value);
-            public Image GetImage(object component);
+            public Image? GetImage(object? component);
-            public Image GetImage(object component, bool large);
+            public Image? GetImage(object? component, bool large);
-            public Image GetImage(Type type);
+            public Image? GetImage(Type type);
-            public Image GetImage(Type type, bool large);
+            public Image? GetImage(Type type, bool large);
-            public Image GetImage(Type type, string imgName, bool large);
+            public Image? GetImage(Type type, string? imgName, bool large);
-            public static Image GetImageFromResource(Type t, string imageName, bool large);
+            public static Image? GetImageFromResource(Type t, string? imageName, bool large);
         }
     }
     namespace System.Drawing.Drawing2D {
         public class CustomLineCap : MarshalByRefObject, ICloneable, IDisposable {
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap, float baseInset);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap, float baseInset);
+            ~CustomLineCap();
         }
         public sealed class GraphicsPath : MarshalByRefObject, ICloneable, IDisposable {
-            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat? format);
+            ~GraphicsPath();
-            public void Flatten(Matrix matrix);
+            public void Flatten(Matrix? matrix);
-            public void Flatten(Matrix matrix, float flatness);
+            public void Flatten(Matrix? matrix, float flatness);
-            public RectangleF GetBounds(Matrix matrix);
+            public RectangleF GetBounds(Matrix? matrix);
-            public RectangleF GetBounds(Matrix matrix, Pen pen);
+            public RectangleF GetBounds(Matrix? matrix, Pen? pen);
-            public bool IsOutlineVisible(Point pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(Point pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics? graphics);
-            public bool IsVisible(Point pt, Graphics graphics);
+            public bool IsVisible(Point pt, Graphics? graphics);
-            public bool IsVisible(PointF pt, Graphics graphics);
+            public bool IsVisible(PointF pt, Graphics? graphics);
-            public bool IsVisible(int x, int y, Graphics graphics);
+            public bool IsVisible(int x, int y, Graphics? graphics);
-            public bool IsVisible(float x, float y, Graphics graphics);
+            public bool IsVisible(float x, float y, Graphics? graphics);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode, float flatness);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode, float flatness);
-            public void Widen(Pen pen, Matrix matrix);
+            public void Widen(Pen pen, Matrix? matrix);
-            public void Widen(Pen pen, Matrix matrix, float flatness);
+            public void Widen(Pen pen, Matrix? matrix, float flatness);
         }
         public sealed class GraphicsPathIterator : MarshalByRefObject, IDisposable {
-            public GraphicsPathIterator(GraphicsPath path);
+            public GraphicsPathIterator(GraphicsPath? path);
+            ~GraphicsPathIterator();
         }
         public sealed class LinearGradientBrush : Brush {
-            public Blend Blend { get; set; }
+            public Blend? Blend { get; set; }
         }
         public sealed class Matrix : MarshalByRefObject, IDisposable {
+            public Matrix(Matrix3x2 matrix);
+            public Matrix3x2 MatrixElements { get; set; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~Matrix();
         }
     }
     namespace System.Drawing.Imaging {
         public sealed class Encoder {
+            public static readonly Encoder ColorSpace;
+            public static readonly Encoder ImageItems;
+            public static readonly Encoder SaveAsCmyk;
         }
         public sealed class EncoderParameter : IDisposable {
+            ~EncoderParameter();
         }
         public enum EncoderParameterValueType {
+            ValueTypePointer = 9,
         }
         public sealed class FrameDimension {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class ImageAttributes : ICloneable, IDisposable {
+            ~ImageAttributes();
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag flags);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag flags);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
         }
         public sealed class ImageCodecInfo {
-            public byte[][] SignatureMasks { get; set; }
+            public byte[][]? SignatureMasks { get; set; }
-            public byte[][] SignaturePatterns { get; set; }
+            public byte[][]? SignaturePatterns { get; set; }
         }
         public sealed class ImageFormat {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class Metafile : Image {
-            public Metafile(IntPtr referenceHdc, EmfType emfType, string description);
+            public Metafile(IntPtr referenceHdc, EmfType emfType, string? description);
-            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string desc);
+            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? desc);
-            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string desc);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string? desc);
         }
     }
     namespace System.Drawing.Printing {
+        public class MarginsConverter : ExpandableObjectConverter
         public abstract class PrintController {
-            public virtual Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e);
+            public virtual Graphics? OnStartPage(PrintDocument document, PrintPageEventArgs e);
         }
         public class PrintDocument : Component {
-            protected virtual void OnBeginPrint(PrintEventArgs e);
+            protected internal virtual void OnBeginPrint(PrintEventArgs e);
-            protected virtual void OnEndPrint(PrintEventArgs e);
+            protected internal virtual void OnEndPrint(PrintEventArgs e);
-            protected virtual void OnPrintPage(PrintPageEventArgs e);
+            protected internal virtual void OnPrintPage(PrintPageEventArgs e);
-            protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
+            protected internal virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
         }
         public class PrinterSettings : ICloneable {
             public class PaperSizeCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PaperSourceCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PrinterResolutionCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class StringCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
         }
         public class PrintPageEventArgs : EventArgs {
-            public PrintPageEventArgs(Graphics graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
+            public PrintPageEventArgs(Graphics? graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
-            public Graphics Graphics { get; }
+            public Graphics? Graphics { get; }
         }
     }
     namespace System.Drawing.Text {
         public abstract class FontCollection : IDisposable {
+            ~FontCollection();
         }
     }
-    namespace System.Runtime.CompilerServices {
 {
-        internal class __BlockReflectionAttribute : Attribute

-    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

Removing the netcoreapp2.0, netstandard2.0 and net461 configurations
of System.Drawing.Common as these aren't built live anymore (harvested).
Replace the netstandard2.0 and net461 harvested asset with live builds
and stop supporting netcoreapp2.x.

Bringing these assets back as the minimum supported set of platforms are
ones that support netstandard2.0 and are still in support.

Contributes to dotnet#47530
@ViktorHofer ViktorHofer added this to the 6.0.0 milestone Apr 27, 2021
@ViktorHofer ViktorHofer self-assigned this Apr 27, 2021
@ghost
Copy link

ghost commented Apr 27, 2021

Tagging subscribers to this area: @safern, @tarekgh
See info in area-owners.md if you want to be subscribed.

Issue Details

Removing the netcoreapp2.0, netstandard2.0 and net461 configurations
of System.Drawing.Common as these aren't built live anymore (harvested).
Replace the netstandard2.0 and net461 harvested asset with live builds
and stop supporting netcoreapp2.x.

Bringing these assets back as the minimum supported set of platforms are
ones that support netstandard2.0 and are still in support.

Contributes to #47530

NuSpec diff

diff --git a/System.Drawing.Common.nuspec b/System.Drawing.Common.nuspec
index 8dac942..3ffc24e 100644
--- a/System.Drawing.Common.nuspec
+++ b/System.Drawing.Common.nuspec
@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
   <metadata minClientVersion="2.12">
     <id>System.Drawing.Common</id>
-    <version>6.0.0-preview.3.21201.4</version>
+    <version>6.0.0-dev</version>
     <title>System.Drawing.Common</title>
     <authors>Microsoft</authors>
     <owners>microsoft,dotnetframework</owners>
@@ -23,19 +23,21 @@ System.Drawing.Icon</description>
     <releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
     <copyright>© Microsoft Corporation. All rights reserved.</copyright>
     <serviceable>true</serviceable>
-    <repository type="git" url="https://github.com/dotnet/runtime" commit="236cb21e3c1992c8cee6935ce67e2125ac4687e8" />
+    <repository type="git" url="https://github.com/dotnet/runtime" commit="0000000000000000000000000000000000000000" />
     <dependencies>
       <group targetFramework="MonoAndroid1.0" />
       <group targetFramework="MonoTouch1.0" />
-      <group targetFramework=".NETFramework4.6.1" />
-      <group targetFramework=".NETCoreApp2.0">
-        <dependency id="Microsoft.NETCore.Platforms" version="6.0.0-preview.3.21201.4" />
-        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-preview.3.21201.4" exclude="Compile" />
+      <group targetFramework=".NETFramework4.6.1">
+        <dependency id="System.Numerics.Vectors" version="4.5.0" />
       </group>
+      <group targetFramework=".NETCoreApp2.0" />
       <group targetFramework=".NETCoreApp3.0">
-        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-preview.3.21201.4" exclude="Compile" />
+        <dependency id="Microsoft.Win32.SystemEvents" version="6.0.0-dev" exclude="Compile" />
       </group>
-      <group targetFramework=".NETStandard2.0" />
+      <group targetFramework=".NETStandard2.0">
+        <dependency id="System.Numerics.Vectors" version="4.5.0" />
+      </group>
+      <group targetFramework="UAP10.0.16299" />
       <group targetFramework="Xamarin.iOS1.0" />
       <group targetFramework="Xamarin.Mac2.0" />
       <group targetFramework="Xamarin.TVOS1.0" />
@@ -45,6 +47,7 @@ System.Drawing.Icon</description>
       <frameworkAssembly assemblyName="mscorlib" targetFramework=".NETFramework4.6.1" />
       <frameworkAssembly assemblyName="System" targetFramework=".NETFramework4.6.1" />
       <frameworkAssembly assemblyName="System.Drawing" targetFramework=".NETFramework4.6.1" />
+      <frameworkAssembly assemblyName="System.Numerics" targetFramework=".NETFramework4.6.1" />
     </frameworkAssemblies>
   </metadata>
 </package>

ref/net461 diff

 {
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

ref/netstandard2.0 diff

``` diff
 {
+    namespace System {
+        internal sealed class ObsoleteAttribute : Attribute
+    }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
     namespace System.Drawing {
         public sealed class BufferedGraphics : IDisposable {
-            ~BufferedGraphics();

-            public void Render(Graphics target);
+            public void Render(Graphics? target);
         }
         public struct CharacterRange {
-            private int _dummy;

+            private int _dummyPrimitive;
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Font : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public string OriginalFontName { get; }
+            public string? OriginalFontName { get; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class FontConverter : TypeConverter
         public sealed class FontFamily : MarshalByRefObject, IDisposable {
-            public FontFamily(string name, FontCollection fontCollection);
+            public FontFamily(string name, FontCollection? fontCollection);
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable {
+            public Matrix3x2 TransformElements { get; set; }
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawString(string s, Font font, Brush brush, PointF point);
+            public void DrawString(string? s, Font font, Brush brush, PointF point);
-            public void DrawString(string s, Font font, Brush brush, PointF point, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, PointF point, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, float x, float y);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y);
-            public void DrawString(string s, Font font, Brush brush, float x, float y, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y, StringFormat? format);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
+            public void GetContextInfo(out PointF offset);
+            public void GetContextInfo(out PointF offset, out Region? clip);
-            public Region[] MeasureCharacterRanges(string text, Font font, RectangleF layoutRect, StringFormat stringFormat);
+            public Region[] MeasureCharacterRanges(string? text, Font font, RectangleF layoutRect, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font);
+            public SizeF MeasureString(string? text, Font font);
-            public SizeF MeasureString(string text, Font font, PointF origin, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, PointF origin, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat, out int charactersFitted, out int linesFilled);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
-            public SizeF MeasureString(string text, Font font, int width);
+            public SizeF MeasureString(string? text, Font font, int width);
-            public SizeF MeasureString(string text, Font font, int width, StringFormat format);
+            public SizeF MeasureString(string? text, Font font, int width, StringFormat? format);
         }
         public sealed class Icon : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public static Icon ExtractAssociatedIcon(string filePath);
+            public static Icon? ExtractAssociatedIcon(string filePath);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class IconConverter : ExpandableObjectConverter
         public abstract class Image : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public object Tag { get; set; }
+            public object? Tag { get; set; }
-            public EncoderParameters GetEncoderParameterList(Guid encoder);
+            public EncoderParameters? GetEncoderParameterList(Guid encoder);
-            public PropertyItem GetPropertyItem(int propid);
+            public PropertyItem? GetPropertyItem(int propid);
-            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort callback, IntPtr callbackData);
+            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort? callback, IntPtr callbackData);
-            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void SaveAdd(Image image, EncoderParameters encoderParams);
+            public void SaveAdd(Image image, EncoderParameters? encoderParams);
-            public void SaveAdd(EncoderParameters encoderParams);
+            public void SaveAdd(EncoderParameters? encoderParams);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
         public sealed class ImageAnimator {
-            public static bool CanAnimate(Image image);
+            public static bool CanAnimate(Image? image);
         }
+        public class ImageConverter : TypeConverter
+        public class ImageFormatConverter : TypeConverter
         public sealed class Region : MarshalByRefObject, IDisposable {
-            public RegionData GetRegionData();
+            public RegionData? GetRegionData();
-            public bool IsVisible(Point point, Graphics g);
+            public bool IsVisible(Point point, Graphics? g);
-            public bool IsVisible(PointF point, Graphics g);
+            public bool IsVisible(PointF point, Graphics? g);
-            public bool IsVisible(Rectangle rect, Graphics g);
+            public bool IsVisible(Rectangle rect, Graphics? g);
-            public bool IsVisible(RectangleF rect, Graphics g);
+            public bool IsVisible(RectangleF rect, Graphics? g);
-            public bool IsVisible(int x, int y, Graphics g);
+            public bool IsVisible(int x, int y, Graphics? g);
-            public bool IsVisible(int x, int y, int width, int height, Graphics g);
+            public bool IsVisible(int x, int y, int width, int height, Graphics? g);
-            public bool IsVisible(float x, float y, Graphics g);
+            public bool IsVisible(float x, float y, Graphics? g);
-            public bool IsVisible(float x, float y, float width, float height, Graphics g);
+            public bool IsVisible(float x, float y, float width, float height, Graphics? g);
         }
         public static class SystemFonts {
-            public static Font GetFontByName(string systemFontName);
+            public static Font? GetFontByName(string systemFontName);
         }
         public sealed class TextureBrush : Brush {
-            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes? imageAttr);
-            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes? imageAttr);
         }
         public class ToolboxBitmapAttribute : Attribute {
-            public override bool Equals(object value);
+            public override bool Equals(object? value);
-            public Image GetImage(object component);
+            public Image? GetImage(object? component);
-            public Image GetImage(object component, bool large);
+            public Image? GetImage(object? component, bool large);
-            public Image GetImage(Type type);
+            public Image? GetImage(Type type);
-            public Image GetImage(Type type, bool large);
+            public Image? GetImage(Type type, bool large);
-            public Image GetImage(Type type, string imgName, bool large);
+            public Image? GetImage(Type type, string? imgName, bool large);
-            public static Image GetImageFromResource(Type t, string imageName, bool large);
+            public static Image? GetImageFromResource(Type t, string? imageName, bool large);
         }
     }
     namespace System.Drawing.Drawing2D {
         public class CustomLineCap : MarshalByRefObject, ICloneable, IDisposable {
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap, float baseInset);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap, float baseInset);
         }
         public sealed class GraphicsPath : MarshalByRefObject, ICloneable, IDisposable {
-            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat? format);
-            public void Flatten(Matrix matrix);
+            public void Flatten(Matrix? matrix);
-            public void Flatten(Matrix matrix, float flatness);
+            public void Flatten(Matrix? matrix, float flatness);
-            public RectangleF GetBounds(Matrix matrix);
+            public RectangleF GetBounds(Matrix? matrix);
-            public RectangleF GetBounds(Matrix matrix, Pen pen);
+            public RectangleF GetBounds(Matrix? matrix, Pen? pen);
-            public bool IsOutlineVisible(Point pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(Point pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics? graphics);
-            public bool IsVisible(Point pt, Graphics graphics);
+            public bool IsVisible(Point pt, Graphics? graphics);
-            public bool IsVisible(PointF pt, Graphics graphics);
+            public bool IsVisible(PointF pt, Graphics? graphics);
-            public bool IsVisible(int x, int y, Graphics graphics);
+            public bool IsVisible(int x, int y, Graphics? graphics);
-            public bool IsVisible(float x, float y, Graphics graphics);
+            public bool IsVisible(float x, float y, Graphics? graphics);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode, float flatness);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode, float flatness);
-            public void Widen(Pen pen, Matrix matrix);
+            public void Widen(Pen pen, Matrix? matrix);
-            public void Widen(Pen pen, Matrix matrix, float flatness);
+            public void Widen(Pen pen, Matrix? matrix, float flatness);
         }
         public sealed class GraphicsPathIterator : MarshalByRefObject, IDisposable {
-            public GraphicsPathIterator(GraphicsPath path);
+            public GraphicsPathIterator(GraphicsPath? path);
         }
         public sealed class LinearGradientBrush : Brush {
-            public Blend Blend { get; set; }
+            public Blend? Blend { get; set; }
         }
         public sealed class Matrix : MarshalByRefObject, IDisposable {
+            public Matrix(Matrix3x2 matrix);
+            public Matrix3x2 MatrixElements { get; set; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
     }
     namespace System.Drawing.Imaging {
         public sealed class Encoder {
+            public static readonly Encoder ColorSpace;
+            public static readonly Encoder ImageItems;
+            public static readonly Encoder SaveAsCmyk;
         }
         public enum EncoderParameterValueType {
+            ValueTypePointer = 9,
         }
         public sealed class FrameDimension {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class ImageAttributes : ICloneable, IDisposable {
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag flags);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag flags);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
         }
         public sealed class ImageCodecInfo {
-            public byte[][] SignatureMasks { get; set; }
+            public byte[][]? SignatureMasks { get; set; }
-            public byte[][] SignaturePatterns { get; set; }
+            public byte[][]? SignaturePatterns { get; set; }
         }
         public sealed class ImageFormat {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class Metafile : Image {
-            public Metafile(IntPtr referenceHdc, EmfType emfType, string description);
+            public Metafile(IntPtr referenceHdc, EmfType emfType, string? description);
-            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string desc);
+            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? desc);
-            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string desc);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string? desc);
         }
     }
     namespace System.Drawing.Printing {
+        public class MarginsConverter : ExpandableObjectConverter
         public abstract class PrintController {
-            public virtual Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e);
+            public virtual Graphics? OnStartPage(PrintDocument document, PrintPageEventArgs e);
         }
         public class PrintDocument : Component {
-            protected virtual void OnBeginPrint(PrintEventArgs e);
+            protected internal virtual void OnBeginPrint(PrintEventArgs e);
-            protected virtual void OnEndPrint(PrintEventArgs e);
+            protected internal virtual void OnEndPrint(PrintEventArgs e);
-            protected virtual void OnPrintPage(PrintPageEventArgs e);
+            protected internal virtual void OnPrintPage(PrintPageEventArgs e);
-            protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
+            protected internal virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
         }
         public class PrinterSettings : ICloneable {
             public class PaperSizeCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PaperSourceCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PrinterResolutionCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class StringCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
         }
         public class PrintPageEventArgs : EventArgs {
-            public PrintPageEventArgs(Graphics graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
+            public PrintPageEventArgs(Graphics? graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
-            public Graphics Graphics { get; }
+            public Graphics? Graphics { get; }
         }
     }
-    namespace System.Runtime.CompilerServices {
 {
-        internal class __BlockReflectionAttribute : Attribute

-    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

src/net461 diff

 {
     namespace System {
         internal static class SR {
+            private static readonly bool s_usingResourceKeys;
+            internal static string AvailableOnlyOnWMF { get; }
+            internal static string CannotCreateGraphics { get; }
+            internal static string CouldNotOpenDisplay { get; }
+            internal static string CouldntFindSpecifiedFile { get; }
+            internal static string IconInstanceWasDisposed { get; }
+            internal static string IconInvalidMaskLength { get; }
-            internal static string InvalidArgument { get; }

+            internal static string InvalidArgumentValue { get; }
+            internal static string InvalidArgumentValueFontConverter { get; }
+            internal static string InvalidGraphicsUnit { get; }
+            internal static string InvalidThumbnailSize { get; }
+            internal static string NoCodecAvailableForFormat { get; }
+            internal static string none { get; }
+            internal static string NotImplementedUnderX11 { get; }
+            internal static string NoValidIconImageFound { get; }
+            internal static string NullOrEmptyPath { get; }
+            internal static string NumberOfPointsAndTypesMustBeSame { get; }
+            internal static string ObjectDisposed { get; }
-            private static ResourceManager ResourceManager { get; }
+            internal static ResourceManager ResourceManager { get; }
-            internal static Type ResourceType { get; }

+            internal static string SystemDrawingCommon_PlatformNotSupported { get; }
+            internal static string TargetDirectoryDoesNotExist { get; }
+            internal static string ValueLessThenZero { get; }
+            internal static string ValueNotOneOfValues { get; }
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2, object p3);
+            internal static string Format(IFormatProvider provider, string resourceFormat, params object[] args);
+            internal static string GetResourceString(string resourceKey);
         }
     }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }

src/netstandard2.0 diff

 {
     namespace System {
+        internal sealed class ObsoleteAttribute : Attribute
         internal static class SR {
+            private static readonly bool s_usingResourceKeys;
+            internal static string AvailableOnlyOnWMF { get; }
+            internal static string CannotCreateGraphics { get; }
+            internal static string CouldNotOpenDisplay { get; }
+            internal static string CouldntFindSpecifiedFile { get; }
+            internal static string IconInstanceWasDisposed { get; }
+            internal static string IconInvalidMaskLength { get; }
-            internal static string InvalidArgument { get; }

+            internal static string InvalidArgumentValue { get; }
+            internal static string InvalidArgumentValueFontConverter { get; }
+            internal static string InvalidGraphicsUnit { get; }
+            internal static string InvalidThumbnailSize { get; }
+            internal static string NoCodecAvailableForFormat { get; }
+            internal static string none { get; }
+            internal static string NotImplementedUnderX11 { get; }
+            internal static string NoValidIconImageFound { get; }
+            internal static string NullOrEmptyPath { get; }
+            internal static string NumberOfPointsAndTypesMustBeSame { get; }
+            internal static string ObjectDisposed { get; }
-            private static ResourceManager ResourceManager { get; }
+            internal static ResourceManager ResourceManager { get; }
-            internal static Type ResourceType { get; }

+            internal static string SystemDrawingCommon_PlatformNotSupported { get; }
+            internal static string TargetDirectoryDoesNotExist { get; }
+            internal static string ValueLessThenZero { get; }
+            internal static string ValueNotOneOfValues { get; }
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2);
+            internal static string Format(IFormatProvider provider, string resourceFormat, object p1, object p2, object p3);
+            internal static string Format(IFormatProvider provider, string resourceFormat, params object[] args);
+            internal static string GetResourceString(string resourceKey);
         }
     }
+    namespace System.Diagnostics.CodeAnalysis {
+        internal sealed class AllowNullAttribute : Attribute
+        internal sealed class DisallowNullAttribute : Attribute
+        internal sealed class DoesNotReturnAttribute : Attribute
+        internal sealed class DoesNotReturnIfAttribute : Attribute
+        internal sealed class MaybeNullAttribute : Attribute
+        internal sealed class MaybeNullWhenAttribute : Attribute
+        internal sealed class MemberNotNullAttribute : Attribute
+        internal sealed class MemberNotNullWhenAttribute : Attribute
+        internal sealed class NotNullAttribute : Attribute
+        internal sealed class NotNullIfNotNullAttribute : Attribute
+        internal sealed class NotNullWhenAttribute : Attribute
+    }
     namespace System.Drawing {
         public abstract class Brush : MarshalByRefObject, ICloneable, IDisposable {
+            ~Brush();
         }
         public sealed class BufferedGraphics : IDisposable {
-            public void Render(Graphics target);
+            public void Render(Graphics? target);
         }
         public sealed class BufferedGraphicsContext : IDisposable {
+            ~BufferedGraphicsContext();
         }
         public struct CharacterRange {
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
         }
         public sealed class Font : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public string OriginalFontName { get; }
+            public string? OriginalFontName { get; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~Font();
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class FontConverter : TypeConverter
         public sealed class FontFamily : MarshalByRefObject, IDisposable {
-            public FontFamily(string name, FontCollection fontCollection);
+            public FontFamily(string name, FontCollection? fontCollection);
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~FontFamily();
         }
         public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable {
+            public Matrix3x2 TransformElements { get; set; }
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, PointF[] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback, int callbackData);
+            public void DrawImage(Image image, Point[] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback, int callbackData);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttr, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback);
-            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, Graphics.DrawImageAbort callback, IntPtr callbackData);
+            public void DrawImage(Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes? imageAttrs, Graphics.DrawImageAbort? callback, IntPtr callbackData);
-            public void DrawString(string s, Font font, Brush brush, PointF point);
+            public void DrawString(string? s, Font font, Brush brush, PointF point);
-            public void DrawString(string s, Font font, Brush brush, PointF point, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, PointF point, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle);
-            public void DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat? format);
-            public void DrawString(string s, Font font, Brush brush, float x, float y);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y);
-            public void DrawString(string s, Font font, Brush brush, float x, float y, StringFormat format);
+            public void DrawString(string? s, Font font, Brush brush, float x, float y, StringFormat? format);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, PointF[] destPoints, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Point[] destPoints, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
-            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr);
+            public void EnumerateMetafile(Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, Graphics.EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes? imageAttr);
+            ~Graphics();
+            public void GetContextInfo(out PointF offset);
+            public void GetContextInfo(out PointF offset, out Region? clip);
-            public Region[] MeasureCharacterRanges(string text, Font font, RectangleF layoutRect, StringFormat stringFormat);
+            public Region[] MeasureCharacterRanges(string? text, Font font, RectangleF layoutRect, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font);
+            public SizeF MeasureString(string? text, Font font);
-            public SizeF MeasureString(string text, Font font, PointF origin, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, PointF origin, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat);
-            public SizeF MeasureString(string text, Font font, SizeF layoutArea, StringFormat stringFormat, out int charactersFitted, out int linesFilled);
+            public SizeF MeasureString(string? text, Font font, SizeF layoutArea, StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
-            public SizeF MeasureString(string text, Font font, int width);
+            public SizeF MeasureString(string? text, Font font, int width);
-            public SizeF MeasureString(string text, Font font, int width, StringFormat format);
+            public SizeF MeasureString(string? text, Font font, int width, StringFormat? format);
         }
         public sealed class Icon : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public static Icon ExtractAssociatedIcon(string filePath);
+            public static Icon? ExtractAssociatedIcon(string filePath);
+            ~Icon();
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
+        public class IconConverter : ExpandableObjectConverter
         public abstract class Image : MarshalByRefObject, ICloneable, IDisposable, ISerializable {
-            public object Tag { get; set; }
+            public object? Tag { get; set; }
+            ~Image();
-            public EncoderParameters GetEncoderParameterList(Guid encoder);
+            public EncoderParameters? GetEncoderParameterList(Guid encoder);
-            public PropertyItem GetPropertyItem(int propid);
+            public PropertyItem? GetPropertyItem(int propid);
-            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort callback, IntPtr callbackData);
+            public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort? callback, IntPtr callbackData);
-            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams);
+            public void Save(string filename, ImageCodecInfo encoder, EncoderParameters? encoderParams);
-            public void SaveAdd(Image image, EncoderParameters encoderParams);
+            public void SaveAdd(Image image, EncoderParameters? encoderParams);
-            public void SaveAdd(EncoderParameters encoderParams);
+            public void SaveAdd(EncoderParameters? encoderParams);
-            void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context);
+            void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context);
         }
         public sealed class ImageAnimator {
-            public static bool CanAnimate(Image image);
+            public static bool CanAnimate(Image? image);
         }
+        public class ImageConverter : TypeConverter
+        public class ImageFormatConverter : TypeConverter
         public sealed class Pen : MarshalByRefObject, ICloneable, IDisposable {
+            ~Pen();
         }
         public sealed class Region : MarshalByRefObject, IDisposable {
+            ~Region();
-            public RegionData GetRegionData();
+            public RegionData? GetRegionData();
-            public bool IsVisible(Point point, Graphics g);
+            public bool IsVisible(Point point, Graphics? g);
-            public bool IsVisible(PointF point, Graphics g);
+            public bool IsVisible(PointF point, Graphics? g);
-            public bool IsVisible(Rectangle rect, Graphics g);
+            public bool IsVisible(Rectangle rect, Graphics? g);
-            public bool IsVisible(RectangleF rect, Graphics g);
+            public bool IsVisible(RectangleF rect, Graphics? g);
-            public bool IsVisible(int x, int y, Graphics g);
+            public bool IsVisible(int x, int y, Graphics? g);
-            public bool IsVisible(int x, int y, int width, int height, Graphics g);
+            public bool IsVisible(int x, int y, int width, int height, Graphics? g);
-            public bool IsVisible(float x, float y, Graphics g);
+            public bool IsVisible(float x, float y, Graphics? g);
-            public bool IsVisible(float x, float y, float width, float height, Graphics g);
+            public bool IsVisible(float x, float y, float width, float height, Graphics? g);
         }
         public sealed class StringFormat : MarshalByRefObject, ICloneable, IDisposable {
+            ~StringFormat();
         }
         public static class SystemFonts {
-            public static Font GetFontByName(string systemFontName);
+            public static Font? GetFontByName(string systemFontName);
         }
         public sealed class TextureBrush : Brush {
-            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, Rectangle dstRect, ImageAttributes? imageAttr);
-            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes imageAttr);
+            public TextureBrush(Image image, RectangleF dstRect, ImageAttributes? imageAttr);
         }
         public class ToolboxBitmapAttribute : Attribute {
-            public override bool Equals(object value);
+            public override bool Equals(object? value);
-            public Image GetImage(object component);
+            public Image? GetImage(object? component);
-            public Image GetImage(object component, bool large);
+            public Image? GetImage(object? component, bool large);
-            public Image GetImage(Type type);
+            public Image? GetImage(Type type);
-            public Image GetImage(Type type, bool large);
+            public Image? GetImage(Type type, bool large);
-            public Image GetImage(Type type, string imgName, bool large);
+            public Image? GetImage(Type type, string? imgName, bool large);
-            public static Image GetImageFromResource(Type t, string imageName, bool large);
+            public static Image? GetImageFromResource(Type t, string? imageName, bool large);
         }
     }
     namespace System.Drawing.Drawing2D {
         public class CustomLineCap : MarshalByRefObject, ICloneable, IDisposable {
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap);
-            public CustomLineCap(GraphicsPath fillPath, GraphicsPath strokePath, LineCap baseCap, float baseInset);
+            public CustomLineCap(GraphicsPath? fillPath, GraphicsPath? strokePath, LineCap baseCap, float baseInset);
+            ~CustomLineCap();
         }
         public sealed class GraphicsPath : MarshalByRefObject, ICloneable, IDisposable {
-            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Point origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, PointF origin, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, Rectangle layoutRect, StringFormat? format);
-            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat format);
+            public void AddString(string s, FontFamily family, int style, float emSize, RectangleF layoutRect, StringFormat? format);
+            ~GraphicsPath();
-            public void Flatten(Matrix matrix);
+            public void Flatten(Matrix? matrix);
-            public void Flatten(Matrix matrix, float flatness);
+            public void Flatten(Matrix? matrix, float flatness);
-            public RectangleF GetBounds(Matrix matrix);
+            public RectangleF GetBounds(Matrix? matrix);
-            public RectangleF GetBounds(Matrix matrix, Pen pen);
+            public RectangleF GetBounds(Matrix? matrix, Pen? pen);
-            public bool IsOutlineVisible(Point pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(Point pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(PointF pt, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(int x, int y, Pen pen, Graphics? graphics);
-            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics graphics);
+            public bool IsOutlineVisible(float x, float y, Pen pen, Graphics? graphics);
-            public bool IsVisible(Point pt, Graphics graphics);
+            public bool IsVisible(Point pt, Graphics? graphics);
-            public bool IsVisible(PointF pt, Graphics graphics);
+            public bool IsVisible(PointF pt, Graphics? graphics);
-            public bool IsVisible(int x, int y, Graphics graphics);
+            public bool IsVisible(int x, int y, Graphics? graphics);
-            public bool IsVisible(float x, float y, Graphics graphics);
+            public bool IsVisible(float x, float y, Graphics? graphics);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode);
-            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix matrix, WarpMode warpMode, float flatness);
+            public void Warp(PointF[] destPoints, RectangleF srcRect, Matrix? matrix, WarpMode warpMode, float flatness);
-            public void Widen(Pen pen, Matrix matrix);
+            public void Widen(Pen pen, Matrix? matrix);
-            public void Widen(Pen pen, Matrix matrix, float flatness);
+            public void Widen(Pen pen, Matrix? matrix, float flatness);
         }
         public sealed class GraphicsPathIterator : MarshalByRefObject, IDisposable {
-            public GraphicsPathIterator(GraphicsPath path);
+            public GraphicsPathIterator(GraphicsPath? path);
+            ~GraphicsPathIterator();
         }
         public sealed class LinearGradientBrush : Brush {
-            public Blend Blend { get; set; }
+            public Blend? Blend { get; set; }
         }
         public sealed class Matrix : MarshalByRefObject, IDisposable {
+            public Matrix(Matrix3x2 matrix);
+            public Matrix3x2 MatrixElements { get; set; }
-            public override bool Equals(object obj);
+            public override bool Equals(object? obj);
+            ~Matrix();
         }
     }
     namespace System.Drawing.Imaging {
         public sealed class Encoder {
+            public static readonly Encoder ColorSpace;
+            public static readonly Encoder ImageItems;
+            public static readonly Encoder SaveAsCmyk;
         }
         public sealed class EncoderParameter : IDisposable {
+            ~EncoderParameter();
         }
         public enum EncoderParameterValueType {
+            ValueTypePointer = 9,
         }
         public sealed class FrameDimension {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class ImageAttributes : ICloneable, IDisposable {
+            ~ImageAttributes();
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag flags);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag flags);
-            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
+            public void SetColorMatrices(ColorMatrix newColorMatrix, ColorMatrix? grayMatrix, ColorMatrixFlag mode, ColorAdjustType type);
         }
         public sealed class ImageCodecInfo {
-            public byte[][] SignatureMasks { get; set; }
+            public byte[][]? SignatureMasks { get; set; }
-            public byte[][] SignaturePatterns { get; set; }
+            public byte[][]? SignaturePatterns { get; set; }
         }
         public sealed class ImageFormat {
-            public override bool Equals(object o);
+            public override bool Equals(object? o);
         }
         public sealed class Metafile : Image {
-            public Metafile(IntPtr referenceHdc, EmfType emfType, string description);
+            public Metafile(IntPtr referenceHdc, EmfType emfType, string? description);
-            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string desc);
+            public Metafile(IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? desc);
-            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(Stream stream, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string description);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, EmfType type, string? description);
-            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string desc);
+            public Metafile(string fileName, IntPtr referenceHdc, RectangleF frameRect, MetafileFrameUnit frameUnit, string? desc);
         }
     }
     namespace System.Drawing.Printing {
+        public class MarginsConverter : ExpandableObjectConverter
         public abstract class PrintController {
-            public virtual Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e);
+            public virtual Graphics? OnStartPage(PrintDocument document, PrintPageEventArgs e);
         }
         public class PrintDocument : Component {
-            protected virtual void OnBeginPrint(PrintEventArgs e);
+            protected internal virtual void OnBeginPrint(PrintEventArgs e);
-            protected virtual void OnEndPrint(PrintEventArgs e);
+            protected internal virtual void OnEndPrint(PrintEventArgs e);
-            protected virtual void OnPrintPage(PrintPageEventArgs e);
+            protected internal virtual void OnPrintPage(PrintPageEventArgs e);
-            protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
+            protected internal virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e);
         }
         public class PrinterSettings : ICloneable {
             public class PaperSizeCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PaperSourceCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class PrinterResolutionCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
             public class StringCollection : ICollection, IEnumerable {
-                int System.Collections.ICollection.Count { get; }
+                int ICollection.Count { get; }
-                bool System.Collections.ICollection.IsSynchronized { get; }
+                bool ICollection.IsSynchronized { get; }
-                object System.Collections.ICollection.SyncRoot { get; }
+                object ICollection.SyncRoot { get; }
-                void System.Collections.ICollection.CopyTo(Array array, int index);
+                void ICollection.CopyTo(Array array, int index);
-                IEnumerator System.Collections.IEnumerable.GetEnumerator();
+                IEnumerator IEnumerable.GetEnumerator();
             }
         }
         public class PrintPageEventArgs : EventArgs {
-            public PrintPageEventArgs(Graphics graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
+            public PrintPageEventArgs(Graphics? graphics, Rectangle marginBounds, Rectangle pageBounds, PageSettings pageSettings);
-            public Graphics Graphics { get; }
+            public Graphics? Graphics { get; }
         }
     }
     namespace System.Drawing.Text {
         public abstract class FontCollection : IDisposable {
+            ~FontCollection();
         }
     }
-    namespace System.Runtime.CompilerServices {
 {
-        internal class __BlockReflectionAttribute : Attribute

-    }
+    namespace System.Runtime.Versioning {
+        internal abstract class OSPlatformAttribute : Attribute
+        internal sealed class SupportedOSPlatformAttribute : OSPlatformAttribute
+        internal sealed class TargetPlatformAttribute : OSPlatformAttribute
+        internal sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute
+    }
 }
Author: ViktorHofer
Assignees: ViktorHofer
Labels:

area-System.Drawing

Milestone: 6.0.0

@dotnet dotnet deleted a comment Apr 27, 2021
@ViktorHofer ViktorHofer added the breaking-change Issue or PR that represents a breaking API or functional change over a prerelease. label Apr 27, 2021
@ghost ghost added the needs-breaking-change-doc-created Breaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet label Apr 27, 2021
<Project InitialTargets="_ErrorForSystemDrawingCommonOnNetCoreApp2x">
<Target Name="_ErrorForSystemDrawingCommonOnNetCoreApp2x"
Condition="'$(SuppressTfmSupportBuildWarnings)' == ''">
<Error Text="System.Drawing.Common doesn't support $(TargetFramework). Consider updating your TargetFramework to netcoreapp3.0 or later."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we suggest netcoreapp3.1 or later given that 3.0 is out of support and 3.1 is LTS?

Copy link
Member Author

@ViktorHofer ViktorHofer Apr 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not lie about the frameworks a package supports, as technically netcoreapp3.0 is supported by this package.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that makes sense in the perspective that this package supports 3.0, I just didn't know if it was a good practice to suggest a tfm that is out of support.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

technically netcoreapp3.0 is supported by this package

I don't believe this is correct, but will follow up offline to verify.

Copy link
Member Author

@ViktorHofer ViktorHofer Apr 28, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note the wording that I used. Technically the package supports netcoreapp3.0 and later, but we recommend to use platforms which are still in support which .NET Core 3.0 itself isn't anymore.

Giving this more thought I agree that it might cause less troubles to change to netcoreapp3.1. But what complicates this whole topic is that we still have TONS of netcoreapp2.x and netcoreapp3.0 assets in the main branch. I considered upgrading all of those and filed #46400 some months ago but I'm unsure if we still want to do this in the NET6 timeframe. Same applies to upgrading all assets to net461 for .NET Framework and .NET Standard libs to netstandard2.0.

I would be very happy if we would agree on that this is important to do for 6.0 (LTS) but I'm skeptical that we would get approval from directors.

cc @ericstj @danmoseley @terrajobst

@ViktorHofer
Copy link
Member Author

ViktorHofer commented Apr 28, 2021

I would like to reach consensus here to get this merged in. Any remaining concerns? I currently look into enabling tests for net461 to have some form of validation for the facades.

@ViktorHofer
Copy link
Member Author

.NET Framework tests are now running against the façade as expected. Will merge this when CI turns green.

@ViktorHofer
Copy link
Member Author

Browser timing out is #50433

@ViktorHofer
Copy link
Member Author

@premun the Android legs are taking far too long (3 hours). Are the queues again overloaded?

@ViktorHofer ViktorHofer merged commit 3a249b7 into dotnet:main Apr 29, 2021
@ViktorHofer ViktorHofer deleted the DrawingCommonHarvesting branch April 29, 2021 12:51
@premun
Copy link
Member

premun commented Apr 29, 2021

Queue looks fine:
image

Looks like the job finished fine in time:

2021-04-29T10:51:28.0847227Z   Waiting for completion of job 567158b1-3c99-4043-bad6-3b2587d4e958 on Ubuntu.1804.Amd64.Android.Open
2021-04-29T11:15:49.9547459Z   Job 567158b1-3c99-4043-bad6-3b2587d4e958 on Ubuntu.1804.Amd64.Android.Open is completed with 217 finished work items.
----------------------------------
2021-04-29T10:51:28.0847227Z - 2021-04-29T11:15:49.9547459Z = 10:51 - 11:15 = 24 minutes

but then there were some 500s when processing failed tests:
https://dev.azure.com/dnceng/public/_build/results?buildId=1113678&view=logs&j=0f546c32-999b-56dd-5ce9-08c68d21e4c4&t=74727783-ba2d-5b46-44bc-42ba967ce1c5&l=59

@missymessa can this be related to the dev wf?

@ghost ghost locked as resolved and limited conversation to collaborators May 29, 2021
@ViktorHofer ViktorHofer removed the needs-breaking-change-doc-created Breaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet label Sep 30, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Drawing breaking-change Issue or PR that represents a breaking API or functional change over a prerelease.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants