图形

浏览示例。 浏览示例

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

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

  • Microsoft.Maui.Graphics 功能必须在绘图画布上使用,能够绘制高性能图形,并为编写基于图形的控件提供方便的方法。 例如,使用 Microsoft.Maui.Graphics 复制 GitHub 贡献配置文件的控件比使用 .NET MAUI 形状更容易实现。
  • .NET MAUI 形状可以直接在页面上使用,画笔可由所有控件使用。 提供此功能可帮助你生成有吸引力的 UI。

有关 .NET MAUI 形状的详细信息,请参阅 形状

绘图画布

在 .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,指示用于绘制对象的轮廓的颜色。
  • StrokeDashOffset,属于 类型 float,指定短划线图案中破折号开始的距离。
  • StrokeDashPattern类型 float[]为 ,指定用于勾勒对象的短划线和间隙的模式。
  • StrokeLineCap类型 LineCap为 ,描述线条开头和结尾的形状。
  • StrokeLineJoin,属于 类型 LineJoin,指定在形状顶点处使用的联接类型。
  • StrokeSize,类型 float为 ,指示对象的轮廓的宽度。

默认情况下, ICanvas 设置为 1,StrokeColor将 设置为黑色,StrokeLineJoin将 设置为 LineJoin.Miter, 将 StrokeLineCap 设置为 LineJoin.CapStrokeSize

绘图画布状态

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

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

可以使用以下方法操作每个 ICanvas 的图形状态:

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

注意

这些方法保留的状态依赖于平台。