Sdílet prostřednictvím


GraphicsView

Browse sample. Procházení ukázky

Uživatelské rozhraní .NET Multi-Platform App UI (.NET MAUI) GraphicsView je grafické plátno, na kterém lze 2D grafiku kreslit pomocí typů z Microsoft.Maui.Graphics oboru názvů. Další informace naleznete v Microsoft.Maui.Graphicstématu Grafika.

GraphicsViewDrawable definuje vlastnost typu IDrawable, která určuje obsah, který bude nakreslen. Tato vlastnost je podporována BindableProperty, což znamená, že může být cílem datové vazby a styl.

GraphicsView definuje následující události:

  • StartHoverInteraction, s TouchEventArgs, který je vyvolán, když ukazatel přejde do oblasti testu hitu GraphicsView.
  • MoveHoverInteraction, s TouchEventArgs, který je vyvolán při přesunutí ukazatele, zatímco ukazatel zůstává v oblasti testu hitu GraphicsViewv oblasti .
  • EndHoverInteraction, který je vyvolán, když ukazatel opustí testovací oblast hitu GraphicsView.
  • StartInteraction, s TouchEventArgs, který je vyvolán při GraphicsView stisknutí.
  • DragInteraction, s TouchEventArgs, který je vyvolán při GraphicsView přetažení.
  • EndInteraction, s TouchEventArgs, který je vyvolán při tisku, který vyvolal StartInteraction událost je uvolněn.
  • CancelInteraction, který je vyvolán při stisknutí, který kontakt se ztrátou GraphicsView kontaktu.

Vytvoření grafického zobrazení

Musí GraphicsView definovat IDrawable objekt, který určuje obsah, který bude nakreslen na ovládacím prvku. Toho lze dosáhnout vytvořením objektu, který je odvozen z IDrawable, a implementací jeho Draw metody:

namespace MyMauiApp
{
    public class GraphicsDrawable : IDrawable
    {
        public void Draw(ICanvas canvas, RectF dirtyRect)
        {
            // Drawing code goes here
        }      
    }
}

Metoda DrawICanvas a RectF argumenty. Argumentem ICanvas je kreslicí plátno, na kterém nakreslíte grafické objekty. Argumentem RectF je struct , že obsahuje data o velikosti a umístění kreslicího plátna. Další informace o kreslení na výkresu ICanvasnaleznete v tématu Kreslení grafických objektů.

V jazyce XAML IDrawable lze objekt deklarovat jako prostředek a pak ho využívat GraphicsView zadáním jeho klíče jako hodnoty Drawable vlastnosti:

<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>

Grafické objekty s umístěním a velikostí

Umístění a velikost ICanvas stránky lze určit prozkoumáním vlastností argumentu RectF Draw v metodě.

Struktura RectF definuje následující vlastnosti:

  • Bottom, typu float, který představuje souřadnici y dolního okraje plátna.
  • Center, typu PointF, který určuje souřadnice středu plátna.
  • Height, typu float, který definuje výšku plátna.
  • IsEmpty, typu bool, který označuje, zda plátno má nulovou velikost a umístění.
  • Left, typu float, který představuje souřadnici x levého okraje plátna.
  • Location, typu PointF, který definuje souřadnice levého horního rohu plátna.
  • Right, typu float, který představuje souřadnici x pravého okraje plátna.
  • Size, typu SizeF, který definuje šířku a výšku plátna.
  • Top, typu float, který představuje souřadnici y horního okraje plátna.
  • Width, typu float, který definuje šířku plátna.
  • X, typu float, který definuje souřadnici x levého horního rohu plátna.
  • Y, typu float, který definuje souřadnici y levého horního rohu plátna.

Tyto vlastnosti lze použít k umístění a velikosti grafických objektů na objektu ICanvas. Grafické objekty lze například umístit do středu objektu Canvas pomocí Center.X a Center.Y hodnot jako argumentů pro metodu kreslení. Informace o kreslení na výkresu ICanvasnaleznete v tématu Kreslení grafických objektů.

Zneplatnění plátna

GraphicsView má metodu Invalidate , která informuje plátno, že je třeba překreslit sám sebe. Tato metoda musí být vyvolána v GraphicsView instanci:

graphicsView.Invalidate();

Rozhraní .NET MAUI automaticky zneplatní GraphicsView podle potřeby uživatelské rozhraní. Například když se prvek poprvé zobrazí, přejde do zobrazení nebo se odhalí přesunutím prvku z jeho horní části, překreslí se. Jediný čas, kdy potřebujete volat Invalidate , je, když chcete vynutit GraphicsView překreslení samotného, například pokud jste změnili jeho obsah, zatímco je stále viditelný.