Xamarin.Forms Obrazce

je Shape typ , který umožňuje View nakreslit tvar na obrazovku. Shape Objekty lze použít uvnitř tříd rozložení a většiny ovládacích prvků, protože Shape třída je odvozena z View třídy .

Xamarin.FormsObrazce jsou k dispozici v oboru názvů Xamarin.Forms.Shapes v iOSu, Androidu, macOS, Univerzální platformě Windows Platform (UPW) a platformě Windows Presentation Foundation (WPF).

Shape definuje následující vlastnosti:

  • Aspecttyp Stretch popisuje, jak tvar vyplní přidělené místo. Výchozí hodnota této vlastnosti je Stretch.None .
  • Filltyp označuje Brush štětec použitý k zamalování vnitřní části obrazce.
  • Stroketyp označuje Brush štětec použitý k vymalování obrysu obrazce.
  • StrokeDashArray, typu , který představuje kolekci hodnot, které označují vzor pomlčky a mezery, které se používají ke DoubleCollectiondouble obrysu tvaru.
  • StrokeDashOffsettyp double určuje vzdálenost v rámci vzoru pomlčky, kde začíná pomlčka. Výchozí hodnota této vlastnosti je 0,0.
  • StrokeLineCaptyp popisuje tvar na PenLineCap začátku a konci čáry nebo segmentu. Výchozí hodnota této vlastnosti je PenLineCap.Flat .
  • StrokeLineJointyp určuje typ spojení, které se používá na PenLineJoin vrcholech obrazce. Výchozí hodnota této vlastnosti je PenLineJoin.Miter .
  • StrokeMiterLimittyp určuje omezení poměru délky miteru k polovině doubleStrokeThickness tvaru. Výchozí hodnota této vlastnosti je 10.0.
  • StrokeThicknesstyp double určuje šířku obrysu obrazce. Výchozí hodnota této vlastnosti je 1.0.

Tyto vlastnosti jsou zálohovány objekty, což znamená, že mohou být cíle datových vazeb a BindableProperty mají styl.

Xamarin.Forms definuje řadu objektů, které jsou odvozeny z Shape třídy. Jedná se Ellipse o , , , , a LinePathPolygonPolylineRectangle .

Malování obrazce

Brush Objekty se používají k vymalování obrazců a StrokeFill :

<Ellipse Fill="DarkBlue"
         Stroke="Red"
         StrokeThickness="4"
         WidthRequest="150"
         HeightRequest="50"
         HorizontalOptions="Start" />

V tomto příkladu jsou zadány tahy a Ellipse výplně objektu :

Malování obrazce

Důležité

Brush Objekty používají převaděč typů, který Color umožňuje zadat hodnoty pro Stroke vlastnost.

Pokud nezadáte objekt pro , nebo pokud nastavíte na hodnotu 0, ohraničení kolem obrazce BrushStroke se StrokeThickness nenakreslí.

Další informace o Brush objektech najdete v tématu Xamarin.Forms Brushes . Další informace o platných Color hodnotách najdete v tématu Colors in Xamarin.Forms .

Roztažení tvarů

Shape Objekty mají Aspect vlastnost typu Stretch . Tato vlastnost určuje, jak je obsah Shape objektu roztažený, aby vyplnil Shape prostor rozložení objektu. Prostor rozložení objektu je velikost místa, které je přiděleno systémem rozložení, a to buď kvůli explicitnímu nastavení a , nebo kvůli jeho ShapeShape nastavení a Xamarin.FormsWidthRequestHeightRequestHorizontalOptionsVerticalOptions .

Výčet Stretch definuje následující členy:

  • None, která označuje, že obsah zachovává svou původní velikost. Toto je výchozí hodnota Shape.Aspect vlastnosti .
  • Fill, což znamená, že se velikost obsahu změní tak, aby vyplnil cílové dimenze. Poměr stran se nezachová.
  • Uniform, což znamená, že velikost obsahu se změní tak, aby odpovídal cílovým dimenzím, a současně zachová poměr stran.
  • UniformToFilloznačuje, že velikost obsahu se změní tak, aby vyplnil cílové dimenze, a současně zachová poměr stran. Pokud se poměr stran cílového obdélníku liší od zdroje, zdrojový obsah se ořízne, aby se vešel do cílových dimenzí.

Následující kód XAML ukazuje, jak nastavit Aspect vlastnost :

<Path Aspect="Uniform"
      Stroke="Yellow"
      Fill="Red"
      BackgroundColor="LightGray"
      HorizontalOptions="Start"
      HeightRequest="100"
      WidthRequest="100">
    <Path.Data>
        <!-- Path data goes here -->
    </Path.Data>  
</Path>      

V tomto příkladu Path objekt vykreslí srdce. Vlastnosti Path objektu a jsou nastavené na WidthRequestHeightRequest 100 jednotek nezávislých na zařízení a jeho vlastnost je Aspect nastavená na Uniform . V důsledku toho se obsah objektu změní tak, aby odpovídal cílovým dimenzím, a zachová se poměr stran:

Roztažení tvarů

Kreslení přerušovaných tvarů

Shape Objekty mají StrokeDashArray vlastnost typu DoubleCollection . Tato vlastnost představuje kolekci hodnot, které označují vzor pomlčky a mezery, které se používají ke double obrysu tvaru. A DoubleCollection je ObservableCollection hodnota double . Každý double v kolekci určuje délku pomlčky nebo mezery. První položka v kolekci, která se nachází v indexu 0, určuje délku pomlčky. Druhá položka v kolekci, která se nachází v indexu 1, určuje délku mezery. Objekty s sudou hodnotou indexu proto určují pomlčky, zatímco objekty s lichou hodnotou indexu určují mezery.

Shape Objekty mají také vlastnost typu , která určuje vzdálenost v rámci pomlčky, kde StrokeDashOffsetdouble začíná pomlčka. Pokud tuto vlastnost nastavíte, bude mít Shape plnou osnovu.

Přerušované tvary lze nakreslit nastavením StrokeDashArray vlastností StrokeDashOffset i . Vlastnost by měla být nastavená na jednu nebo více hodnot, z nichž každý pár je oddělený jednou čárkou nebo jednou StrokeDashArraydouble nebo více mezerami. Například "0.5 1.0" a "0.5,1.0" jsou obě platné.

Následující příklad XAML ukazuje, jak nakreslit přerušovaný obdélník:

<Rectangle Fill="DarkBlue"
           Stroke="Red"
           StrokeThickness="4"
           StrokeDashArray="1,1"
           StrokeDashOffset="6"
           WidthRequest="150"
           HeightRequest="50"
           HorizontalOptions="Start" />

V tomto příkladu je nakreslen vyplněný obdélník s přerušovanou tahem:

Přerušovaná obdélníková

Konce řídicí čáry

Čára má tři části: počáteční strop, tělo čáry a koncový konec. Počáteční a koncové caps popisují tvar na začátku a konci čáry nebo segmentu.

Shape Objekty mají vlastnost typu , která popisuje tvar na začátku a konci čáry StrokeLineCapPenLineCap nebo segmentu. Výčet PenLineCap definuje následující členy:

  • Flat, která představuje strop, který není za posledním bodem čáry. To je srovnatelné s žádným omezením řádku a je to výchozí hodnota StrokeLineCap vlastnosti.
  • Squarepředstavuje obdélník, který má výšku rovnou tloušťce čáry a délce rovnající se polovině tloušťky čáry.
  • Round, který představuje mikrofon, jehož průměr se rovná tloušťce čáry.

Důležité

Vlastnost StrokeLineCap nemá žádný vliv, pokud ji nastavíte na tvar, který nemá žádné počáteční ani koncové body. Například tato vlastnost nemá žádný vliv, pokud ji nastavíte na Ellipse , nebo Rectangle .

Následující kód XAML ukazuje, jak nastavit StrokeLineCap vlastnost :

<Line X1="0"
      Y1="20"
      X2="300"
      Y2="20"
      StrokeLineCap="Round"
      Stroke="Red"
      StrokeThickness="12" />

V tomto příkladu je červená čára zaokrouhlená na začátku a konci řádku:

Caps line caps

Spojení řídicích linií

Shape Objekty mají vlastnost typu , která určuje typ spojení, které se používá na StrokeLineJoinPenLineJoin vrcholech obrazce. Výčet PenLineJoin definuje následující členy:

  • Miter, která představuje běžné angular vrcholy. Toto je výchozí hodnota StrokeLineJoin vlastnosti .
  • Bevel, která představuje zkosené vrcholy.
  • Round, která představuje zaoblené vrcholy.

Poznámka

Pokud je vlastnost nastavená na , můžete vlastnost nastavit na , aby se omezila délka spojování linií StrokeLineJoinMiter ve StrokeMiterLimitdouble tvaru.

Následující kód XAML ukazuje, jak nastavit StrokeLineJoin vlastnost :

<Polyline Points="20 20,250 50,20 120"
          Stroke="DarkBlue"
          StrokeThickness="20"
          StrokeLineJoin="Round" />

V tomto příkladu má tmavě modrá line zaoblená spojení na vrcholech:

Spojení linií