图形

.NET 多平台应用 UI ( .NET MAUI) 提供了一个跨平台图形画布,可以使用命名空间中 Microsoft.Maui.Graphics 的类型绘制2d 图形。 此画布支持绘制和绘制形状、图像、合成操作和图形对象转换。

重要

.NET 多平台应用 UI ( .NET MAUI) 当前为预览版。 此内容与发布之前可能会进行重大修改的预发行产品相关。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

提供 Microsoft.Maui.Graphics 的功能与 .NET MAUI 形状和画笔提供的功能有很多相似之处。 但是,每个方案都面向不同的方案:

  • Microsoft.Maui.Graphics 功能必须在绘图画布上使用,启用要绘制的高性能图形,并提供一种方便的方法来编写基于图形的控件。 例如,通过使用 .net MAUI 形状,可以更轻松地实现 Microsoft.Maui.Graphics 复制 GitHub 贡献配置文件的控件。
  • .NET MAUI 形状可直接在页面上使用,并且所有控件都可使用画笔。 提供此功能是为了帮助您生成一个引人注目的 UI。

绘图画布

在 .NET MAUI 中, GraphicsView 通过作为 ICanvas 对象公开的绘图画布,启用 Microsoft.Maui.Graphics 功能的使用。 有关的 GraphicsView 详细信息,请参阅 GraphicsView

ICanvas 定义以下属性,这些属性影响在画布上绘制的对象的外观:

  • Alpha类型 float 为的,指示对象的不透明度。
  • Antialias类型 bool 为的指定是否启用抗锯齿。
  • BlendMode类型 BlendMode 为的,用于定义混合模式,该模式确定当对象在现有对象上呈现时所发生的情况。
  • DisplayScale类型 float 为的,表示在画布上缩放 UI 的缩放比例。
  • FillColor类型 Color 为的,指示用于绘制对象内部的颜色。
  • Font类型 IFont 为的,它在绘制文本时定义字体。
  • FontColor,类型 Color 为,用于指定绘制文本时的字体颜色。
  • FontSize类型 float 为的,用于定义绘制文本时的字体大小。
  • MiterLimit类型 float 为的,它指定对象中的行联接的斜接长度限制。
  • StrokeColor类型 Color 为的,指示用于绘制对象轮廓的颜色。
  • StrokeDashPattern类型 float[] 为的,它指定用于对对象进行轮廓的虚线和间隙的模式。
  • StrokeLineCap类型 LineCap 为的,它描述线条开头和结尾处的形状。
  • StrokeLineJoin类型 LineJoin 为的,它指定在形状的顶点处使用的联接类型。
  • StrokeSize类型 float 为的,指示对象轮廓的宽度。

默认情况下, ICanvas 将设置 StrokeSize 为1、 StrokeColor 黑色、 StrokeLineJoinLineJoin.MiterStrokeLineCapLineJoin.Cap

绘图画布状态

每个平台上的绘图画布都可以保持其状态。 这使您可以持久保存当前图形状态,并在需要时还原。

但是,并不是画布的所有元素都是图形状态的元素。 图形状态不包括图形对象(如路径)和画图对象(如渐变)。 每个平台上图形状态的典型元素包括笔划和填充数据以及字体数据。

每个 ICanvas 的图形状态都可以通过以下方法进行操作:

  • SaveState,用于保存当前图形状态。
  • RestoreState,它将图形状态设置为最近保存的状态。
  • ResetState,它将图形状态重置为其默认值。

注意

此方法保留的状态与平台相关。