GráficosVer
A interface do usuário do aplicativo multiplataforma .NET (.NET MAUI) GraphicsView é uma tela de gráficos na qual gráficos 2D podem ser desenhados usando tipos do Microsoft.Maui.Graphics namespace. Para obter mais informações sobre Microsoft.Maui.Graphicso , consulte Gráficos.
GraphicsView define a Drawable
propriedade, do tipo IDrawable
, que especifica o conteúdo que será desenhado. Essa propriedade é apoiada por um BindableProperty, o que significa que ela pode ser o destino da associação de dados e estilizada.
GraphicsView define os seguintes eventos:
StartHoverInteraction
, comTouchEventArgs
, que é gerado quando um ponteiro entra na área de teste de acerto do GraphicsView.MoveHoverInteraction
, comTouchEventArgs
, que é gerado quando um ponteiro se move enquanto o ponteiro permanece dentro da área de teste de acerto do GraphicsView.EndHoverInteraction
, que é gerado quando um ponteiro deixa a área de teste de acerto do GraphicsView.StartInteraction
, comTouchEventArgs
, que é levantado quando o GraphicsView é pressionado.DragInteraction
, comTouchEventArgs
, que é levantado quando o é arrastado GraphicsView .EndInteraction
, comTouchEventArgs
, que é levantado quando a imprensa que levantou oStartInteraction
evento é divulgada.CancelInteraction
, que é levantada quando a imprensa que fez contato com o perde contato GraphicsView .
Criar um GraphicsView
A GraphicsView deve definir um IDrawable
objeto que especifica o conteúdo que será desenhado no controle. Isso pode ser alcançado criando um objeto que deriva de IDrawable
, e implementando seu Draw
método:
namespace MyMauiApp
{
public class GraphicsDrawable : IDrawable
{
public void Draw(ICanvas canvas, RectF dirtyRect)
{
// Drawing code goes here
}
}
}
O Draw
método tem ICanvas e RectF
argumentos. O ICanvas argumento é a tela de desenho na qual você desenha objetos gráficos. O RectF
argumento é um struct
que contém dados sobre o tamanho e a localização da tela de desenho. Para obter mais informações sobre como desenhar em um ICanvas, consulte Desenhar objetos gráficos.
Em XAML, o objeto pode ser declarado como um recurso e, em seguida, consumido por um GraphicsView especificando sua chave como o IDrawable
valor da Drawable
propriedade:
<ContentPage xmlns=http://schemas.microsoft.com/dotnet/2021/maui
xmlns:x=http://schemas.microsoft.com/winfx/2009/xaml
xmlns:drawable="clr-namespace:MyMauiApp"
x:Class="MyMauiApp.MainPage">
<ContentPage.Resources>
<drawable:GraphicsDrawable x:Key="drawable" />
</ContentPage.Resources>
<VerticalStackLayout>
<GraphicsView Drawable="{StaticResource drawable}"
HeightRequest="300"
WidthRequest="400" />
</VerticalStackLayout>
</ContentPage>
Objetos gráficos de posição e tamanho
O local e o ICanvas tamanho do em uma página podem ser determinados examinando as RectF
propriedades do argumento no Draw
método.
A RectF
struct define as seguintes propriedades:
Bottom
, do tipofloat
, que representa a coordenada y da borda inferior da tela.Center
, do tipoPointF
, que especifica as coordenadas do centro da tela.Height
, do tipofloat
, que define a altura da tela.IsEmpty
, do tipobool
, que indica se a tela tem tamanho e localização zero.Left
, do tipofloat
, que representa a coordenada x da borda esquerda da tela.Location
, do tipoPointF
, que define as coordenadas do canto superior esquerdo da tela.Right
, do tipofloat
, que representa a coordenada x da borda direita da tela.Size
, do tipoSizeF
, que define a largura e a altura da tela.Top
, do tipofloat
, que representa a coordenada y da borda superior da tela.Width
, do tipofloat
, que define a largura da tela.X
, do tipofloat
, que define a coordenada x do canto superior esquerdo da tela.Y
, do tipofloat
, que define a coordenada y do canto superior esquerdo da tela.
Essas propriedades podem ser usadas para posicionar e dimensionar ICanvasobjetos gráficos no . Por exemplo, objetos gráficos podem ser colocados no centro do usando os Center.X
valores e Center.Y
como argumentos para um método de Canvas
desenho. Para obter informações sobre como desenhar em um ICanvas, consulte Desenhar objetos gráficos.
Invalidar a tela
GraphicsView tem um Invalidate
método que informa à tela que ela precisa se redesenhar. Esse método deve ser chamado em uma GraphicsView instância:
graphicsView.Invalidate();
O .NET MAUI invalida automaticamente o GraphicsView conforme necessário pela interface do usuário. Por exemplo, quando o elemento é mostrado pela primeira vez, entra em exibição ou é revelado movendo um elemento de cima dele, ele é redesenhado. A única vez que você precisa ligar Invalidate
é quando você quer forçar o GraphicsView redesenho a si mesmo, como se você tiver alterado seu conteúdo enquanto ele ainda está visível.