Karty graficzne

Browse sample. Przeglądanie przykładu

Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) udostępnia wieloplatformową kanwę grafiki, na której można rysowania grafiki 2D przy użyciu typów z Microsoft.Maui.Graphics przestrzeni nazw. Ta kanwa obsługuje rysowanie i malowanie kształtów i obrazów, operacje komponowania i przekształcanie obiektów graficznych.

Istnieje wiele podobieństw między funkcjami udostępnianymi przez Microsoft.Maui.Graphicsprogram i funkcjami udostępnianymi przez kształty i pędzle .NET MAUI. Jednak każdy z nich ma na celu różne scenariusze:

  • Microsoft.Maui.Graphics funkcjonalność musi być używana na kanwie rysunku, umożliwia rysowanie wydajnej grafiki i zapewnia wygodne podejście do pisania kontrolek opartych na grafikach. Na przykład kontrolka, która replikuje profil współtworzenia usługi GitHub, może być łatwiej zaimplementowana przy użyciu niż za Microsoft.Maui.Graphics pomocą kształtów maUI platformy .NET.
  • Kształty .NET MAUI mogą być używane bezpośrednio na stronie, a pędzle mogą być używane przez wszystkie kontrolki. Ta funkcja ułatwia tworzenie atrakcyjnego interfejsu użytkownika.

Aby uzyskać więcej informacji na temat kształtów MAUI platformy .NET, zobacz Kształty.

Rysuj grafikę

W programie .NET MAUI GraphicsView funkcja umożliwia korzystanie z Microsoft.Maui.Graphics funkcji. GraphicsViewDrawable definiuje właściwość typu IDrawable, która określa zawartość, która zostanie narysowana przez kontrolkę. Aby określić zawartość, która zostanie narysowana, należy utworzyć obiekt, który pochodzi z IDrawableklasy , i zaimplementować jego Draw metodę:

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

Metoda Draw ma ICanvas argumenty i RectF . Argumentem ICanvas jest kanwa rysunku, na której rysujesz obiekty graficzne. Argumentem RectF jest struct element zawierający dane dotyczące rozmiaru i lokalizacji kanwy rysunku.

W języku XAML obiekt można zadeklarować jako zasób, IDrawable a następnie zużyć go, GraphicsView określając jego klucz jako wartość Drawable właściwości:

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

Aby uzyskać więcej informacji na temat obiektu GraphicsView, zobacz GraphicsView.

Kanwa rysunku

Kontrolka GraphicsView zapewnia dostęp do ICanvas obiektu za pośrednictwem jego IDrawable obiektu, na którym można ustawić właściwości i metody wywoływane w celu narysowania obiektów graficznych. Aby uzyskać informacje na temat rysunku na obiekcie ICanvas, zobacz Rysowanie obiektów graficznych.

ICanvas definiuje następujące właściwości, które wpływają na wygląd obiektów rysowanych na kanwie:

  • Alpha, typu float, wskazuje nieprzezroczystość obiektu.
  • Antialias, typu bool, określa, czy włączono obsługę anty aliasów.
  • BlendMode, typu BlendMode, definiuje tryb mieszania, który określa, co się stanie, gdy obiekt jest renderowany na podstawie istniejącego obiektu.
  • DisplayScale, typu float, reprezentuje współczynnik skalowania w celu skalowania interfejsu użytkownika według na kanwie.
  • FillColor, typu Color, wskazuje kolor używany do malowania wnętrza obiektu.
  • Font, typu IFont, definiuje czcionkę podczas rysowania tekstu.
  • FontColor, typu Color, określa kolor czcionki podczas rysowania tekstu.
  • FontSize, typu float, definiuje rozmiar czcionki podczas rysowania tekstu.
  • MiterLimit, typu float, określa limit długości miter sprzężeń linii w obiekcie.
  • StrokeColor, typu Color, wskazuje kolor używany do malowania konturu obiektu.
  • StrokeDashOffset, typu float, określa odległość w deseniu kreski, w którym rozpoczyna się kreska.
  • StrokeDashPattern, typu float[], określa wzorzec kreski i przerw, które są używane do nakreślenia obiektu.
  • StrokeLineCap, typu LineCap, opisuje kształt na początku i na końcu wiersza.
  • StrokeLineJoin, typu LineJoin, określa typ sprzężenia używanego w wierzchołkach kształtu.
  • StrokeSize, typu float, wskazuje szerokość konspektu obiektu.

Domyślnie ustawia wartość 1, na czarnąICanvas, StrokeLineJoin na LineJoin.Miter, i StrokeLineCap na LineJoin.Cap. StrokeColorStrokeSize

Stan kanwy rysunku

Kanwa rysunku na każdej platformie ma możliwość zachowania stanu. Dzięki temu można utrwalać bieżący stan grafiki i przywracać go w razie potrzeby.

Jednak nie wszystkie elementy kanwy są elementami stanu grafiki. Stan grafiki nie obejmuje obiektów rysunkowych, takich jak ścieżki i obiekty malowania, takie jak gradienty. Typowe elementy stanu grafiki na każdej platformie obejmują pociągnięcie i wypełnienie danych oraz dane czcionek.

Stan grafiki każdego ICanvas z nich można manipulować przy użyciu następujących metod:

  • SaveState, który zapisuje bieżący stan grafiki.
  • RestoreState, który ustawia stan grafiki na ostatnio zapisany stan.
  • ResetState, co powoduje zresetowanie stanu grafiki do wartości domyślnych.

Uwaga

Stan, który jest utrwalany przez te metody, jest zależny od platformy.