Grafik

Browse sample. Örneğe göz atın

.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI), ad alanından türler kullanılarak 2B grafiklerin çizilebileceği platformlar arası bir grafik tuvali Microsoft.Maui.Graphics sağlar. Bu tuval şekilleri ve resimleri çizmeyi ve boyamayı, birleştirme işlemlerini ve grafik nesne dönüşümlerini destekler.

tarafından Microsoft.Maui.Graphicssağlanan işlevler ile .NET MAUI şekilleri ve fırçaları tarafından sağlanan işlevler arasında birçok benzerlik vardır. Ancak her biri farklı senaryolara yöneliktir:

  • Microsoft.Maui.Graphics işlevselliği bir çizim tuvalinde kullanılmalıdır, performanslı grafiklerin çizilmesine olanak tanır ve grafik tabanlı denetimler yazmak için kullanışlı bir yaklaşım sağlar. Örneğin, GitHub katkı profilini çoğaltan bir denetim, .NET MAUI şekillerinin kullanılmasından daha kolay bir şekilde kullanılabilir Microsoft.Maui.Graphics .
  • .NET MAUI şekilleri doğrudan bir sayfada kullanılabilir ve fırçalar tüm denetimler tarafından kullanılabilir. Bu işlevsellik, çekici bir kullanıcı arabirimi oluşturmanıza yardımcı olmak için sağlanır.

.NET MAUI şekilleri hakkında daha fazla bilgi için bkz . Şekiller.

Grafik çizme

.NET MAUI'de GraphicsView işlevin tüketimine Microsoft.Maui.Graphics olanak tanır. GraphicsViewDrawable denetimi tarafından çizilecek içeriği belirten türündeki IDrawableözelliğini tanımlar. Çizilecek içeriği belirtmek için öğesinden IDrawabletüretilen bir nesne oluşturmanız ve yöntemini Draw uygulamanız gerekir:

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

yönteminin Draw ve RectF bağımsız değişkenleri vardırICanvas. ICanvas Bağımsız değişken, üzerine grafik nesneler çizdiğiniz çizim tuvalidir. RectF bağımsız değişkeni, çizim tuvalinin boyutu ve konumu hakkında veriler içeren bir struct bağımsız değişkendir.

XAML'de IDrawable nesne bir kaynak olarak bildirilebilir ve ardından anahtarını özelliğin Drawable değeri olarak belirterek tarafından GraphicsView kullanılabilir:

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

hakkında GraphicsViewdaha fazla bilgi için bkz . GraphicsView.

Çizim tuvali

DenetimGraphicsView, üzerinde özelliklerin ayarlanabildiği ve grafik nesneler çizmek için çağrılan yöntemlerin bulunduğu nesnesi aracılığıyla IDrawable bir ICanvas nesneye erişim sağlar. üzerinde ICanvasçizim yapma hakkında bilgi için bkz . Grafik nesneleri çizme.

ICanvas tuvalde çizilen nesnelerin görünümünü etkileyen aşağıdaki özellikleri tanımlar:

  • Alpha, türünde floatbir nesnenin opaklığını gösterir.
  • Antialiasbooltüründe, diğer ad önlemenin etkinleştirilip etkinleştirilmediğini belirtir.
  • BlendModetüründe BlendMode, var olan bir nesnenin üzerinde bir nesne işlendiğinde ne olacağını belirleyen karıştırma modunu tanımlar.
  • DisplayScaletüründe float, kullanıcı arabirimini tuvale göre ölçeklendirmek için ölçeklendirme faktörünü temsil eder.
  • FillColortüründe Color, bir nesnenin içini boyamak için kullanılan rengi gösterir.
  • Font, türünde IFont, metin çizerken yazı tipini tanımlar.
  • FontColorColoryazın, metin çizerken yazı tipi rengini belirtir.
  • FontSizefloattüründe, metin çizerken yazı tipinin boyutunu tanımlar.
  • MiterLimittüründe float, bir nesnedeki satır birleştirmelerinin sicim uzunluğunun sınırını belirtir.
  • StrokeColor, türünde Colorbir nesnenin ana hattını boyamak için kullanılan rengi gösterir.
  • StrokeDashOffsettüründe float, tire deseninin içinde bir tirenin başladığı uzaklığı belirtir.
  • StrokeDashPatterntüründe float[], bir nesnenin ana hatlarını oluşturmak için kullanılan tire ve boşluk desenini belirtir.
  • StrokeLineCaptüründe LineCap, çizginin başındaki ve sonundaki şekli açıklar.
  • StrokeLineJointüründe LineJoin, şeklin köşelerinde kullanılan birleştirme türünü belirtir.
  • StrokeSize, türünde floatbir nesnenin ana hattının genişliğini gösterir.

Varsayılan olarak, bir ICanvas 1, siyah, StrokeLineJoinStrokeColor olarak LineJoin.Miterve StrokeLineCap olarak LineJoin.CapayarlarStrokeSize.

Çizim tuval durumu

Her platformdaki çizim tuvali, durumunu koruyabilme özelliğine sahiptir. Bu, geçerli grafik durumunu kalıcı hale getirerek gerektiğinde geri yüklemenize olanak tanır.

Ancak, tuvalin tüm öğeleri grafik durumunun öğeleri değildir. Grafik durumu, yollar gibi çizim nesnelerini ve gradyanlar gibi boya nesnelerini içermez. Her platformdaki grafik durumunun tipik öğeleri vuruş ve dolgu verileri ile yazı tipi verilerini içerir.

Her ICanvas birinin grafik durumu aşağıdaki yöntemlerle değiştirilebilir:

  • SaveState, geçerli grafik durumunu kaydeder.
  • RestoreState, grafik durumunu en son kaydedilen duruma ayarlar.
  • ResetState, grafik durumunu varsayılan değerlerine sıfırlar.

Dekont

Bu yöntemler tarafından kalıcı hale gelen durum platforma bağlıdır.