图形
.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.Cap
StrokeSize 。
绘图画布状态
每个平台上的绘图画布都能够保持其状态。 这使你可以保留当前图形状态,并在需要时还原它。
但是,并非所有画布元素都是图形状态的元素。 图形状态不包括绘图对象(如路径)和绘制对象(如渐变)。 每个平台上图形状态的典型元素包括笔划和填充数据以及字体数据。
可以使用以下方法操作每个 ICanvas 的图形状态:
- SaveState,保存当前图形状态。
- RestoreState,将图形状态设置为最近保存的状态。
- ResetState,它将图形状态重置为其默认值。
注意
这些方法保留的状态依赖于平台。