GraphicsView
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
, sTouchEventArgs
, který je vyvolán, když ukazatel přejde do oblasti testu hitu GraphicsView.MoveHoverInteraction
, sTouchEventArgs
, 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
, sTouchEventArgs
, který je vyvolán při GraphicsView stisknutí.DragInteraction
, sTouchEventArgs
, který je vyvolán při GraphicsView přetažení.EndInteraction
, sTouchEventArgs
, který je vyvolán při tisku, který vyvolalStartInteraction
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 Draw
má ICanvas 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
, typufloat
, který představuje souřadnici y dolního okraje plátna.Center
, typuPointF
, který určuje souřadnice středu plátna.Height
, typufloat
, který definuje výšku plátna.IsEmpty
, typubool
, který označuje, zda plátno má nulovou velikost a umístění.Left
, typufloat
, který představuje souřadnici x levého okraje plátna.Location
, typuPointF
, který definuje souřadnice levého horního rohu plátna.Right
, typufloat
, který představuje souřadnici x pravého okraje plátna.Size
, typuSizeF
, který definuje šířku a výšku plátna.Top
, typufloat
, který představuje souřadnici y horního okraje plátna.Width
, typufloat
, který definuje šířku plátna.X
, typufloat
, který definuje souřadnici x levého horního rohu plátna.Y
, typufloat
, 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ý.